Creating and viewing digital note cards

ABSTRACT

Systems, techniques, and methods are presented for creating digital note cards and presenting a graphical user interface for interacting with digital note cards. For example, content from an electronic book can be displayed in a graphical user interface. Input can be received in the graphical user interface highlighting a portion of the content and creating a note, the note including user generated content. A digital note card can be created where one side of the digital note card includes the highlighted text, and the other side of the digital note card includes the note. The digital note card can be displayed in the graphical user interface.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims priority to U.S. Provisional Application Ser.No. 61/525,701, entitled “CREATING AND VIEWING DIGITAL NOTE CARDS”,filed on Aug. 19, 2011, the entire contents of which are incorporatedherein by reference.

TECHNICAL FIELD

This disclosure is related generally to electronic books (ebooks) andebook reader applications.

BACKGROUND

Physical books provide a reader with the ability to augment the textpresented on the pages of a book. For example, a reader can use ahighlighter to highlight or underline text on a page in a physical book.The reader can also augment the text by writing notes and comments inline with the text or in the margins surrounding the text. To review thehighlighted text, notes, or comments, the reader would need to revisitthe physical pages containing the highlighted text, notes, or comments.Alternatively, a reader can make note cards and include text from abook, personal notes, and comments on the note cards.

Many types of display devices can be used to display text. For example,text from ebooks can be stored on and read from a digital device such asan electronic book reader (ebook reader), personal digital assistant(PDA), mobile phone, a laptop computer, a tablet computer, or the like.An electronic book can be purchased from an online store on the WorldWide Web and downloaded to such a device. The device can have buttonsfor scrolling through the pages of the electronic book as the userreads.

SUMMARY

This disclosure describes technology, which can be implemented as amethod, electronic device, and/or computer software embodied in acomputer-readable medium, and which, among other things, can be used tocreate digital note cards and present a graphical user interface tointeract with digital note cards.

In general, in one aspect, a method performed by one or more processesexecuting on a computer system includes displaying content from anelectronic book in a graphical user interface, receiving first inputhighlighting a portion of the content, receiving second input creating anote, the note including user generated content, creating a firstdigital note card, where one side of the first digital note cardincludes the highlighted text, and the other side of the first digitalnote card includes the note, and displaying, in the graphical userinterface, the first digital note card.

This, and other aspects, can include one or more of the followingfeatures. A stack of digital note cards may be displayed in thegraphical user interface, where a front of the first digital note cardcan be displayed on the top of the stack, the front containing thehighlighted text. Input may be received requesting to flip the firstdigital note card over and responsive to the received input request, thefirst digital note card can be flipped over in a series of graphicaltransitions, and a back of the first digital note card can be displayedin the graphical user interface, the back containing the note. Further,input requesting to move the first digital note card to the bottom ofthe stack of digital note cards can be received and responsive to thereceived input, the first digital note card can be visually moved to thebottom of the digital note card stack in a series of graphicaltransitions, and a front of a second digital note card can be displayedon the top of the digital note card stack, and at least a portion of thefirst digital note card can be displayed at the bottom of the digitalnote card stack. Further, input may be received requesting to move asecond digital note card at the bottom of the digital note card stack tothe top of the digital note card stack, and responsive to the receivedinput, the second digital note card can be visually moved to the top ofthe digital note card stack in a series of graphical transitions, and afront of the second digital note card can be displayed on the top of thedigital note card stack, and at least a portion of the first digitalnote card can be displayed below the second digital note card. Thedigital note cards contained in the digital note card stack can bedynamically filtered based on user feedback indicating a level ofcomprehension for at least one digital note card contained in thedigital note card stack. The digital note cards in the digital note cardstack can be filtered based at least in part on a color associated withthe highlighted portion of content contained on the digital note cards.The digital note card stack may include, in addition to the firstdigital note card, a plurality of vocabulary digital note cards, wherethe front of the vocabulary digital note cards include a vocabulary wordfrom a glossary of vocabulary words included with the ebook and a backof the vocabulary digital note cards include a corresponding definitionof the vocabulary word.

The details of one or more implementations are set forth in theaccompanying drawings and the description below. Other features,objects, and advantages will be apparent from the description anddrawings, and from the claims.

DESCRIPTION OF DRAWINGS

FIGS. 1A-1I illustrate exemplary graphical user interfaces forinteracting with content in an electronic book.

FIG. 2 illustrates an exemplary graphical user interface for viewinghighlighted text and notes corresponding to highlighted text.

FIG. 3 shows an example process for presenting a heads-up display inresponse to a selection of content in an electronic book.

FIGS. 4A-4B show example processes for creating a digital note card.

FIGS. 5A-5C illustrate exemplary graphical user interfaces forinteracting with digital note cards.

FIGS. 6A-6E illustrate exemplary graphical user interfaces for flippinga digital note card over.

FIGS. 7A-7F illustrate exemplary graphical user interfaces for moving adigital note card to the back of a digital note card stack.

FIGS. 8A-8E illustrate exemplary graphical user interfaces for moving adigital note card to the front of a digital note card stack.

FIG. 9 shows an example process for flipping a digital note card over.

FIG. 10 shows an example process for moving a digital note card to thebottom of a digital note card stack.

FIG. 11 shows an example process for moving a digital note card to thetop of a digital note card stack.

FIG. 12 is a block diagram of an example architecture for a devicecapable of running an application for creating and interacting withdigital note cards

FIG. 13 is a block diagram of an example network-operating environmentfor the device of FIG. 12.

Like reference symbols in the various drawings indicate like elements.

DETAILED DESCRIPTION Example GUI for Viewing Digital Books

FIG. 1A illustrates an exemplary GUI for viewing and interacting withcontent in an electronic book (“ebook”). In some implementations, acontent display device 100 can include GUI 102 for viewing andinteracting with content in an ebook. For example, GUI 102 can beconfigured to present content contained in an ebook and receive userinput interacting with the content. User input received by GUI 102 cancause content display device 100 to, for example, visually distinguish aselected portion of content, create a note and associate the note withparticular content, create digital note cards, and display digital notecards. GUI 102 can be generated by a computer program (e.g., anelectronic book application) executing on one or more processors orprocessing cores of a data processing apparatus, including, but notlimited to: laptop computer, desktop computer, tablet computer, e-bookreaders, and smart phones. In some implementations, GUI 102 can be a Webpage generated by a web-based electronic book application hosted on aserver computer and sent to a client device over a network (e.g., theInternet).

In some implementations, GUI 102 of content display device 100 can be atouch-sensitive surface. The touch sensitive surface can receive userinput through various input techniques. Example touch surface inputsinclude touch inputs and gesture inputs. A touch input is an input wherea user holds his or her finger (or other input tool) at a particularlocation. A gesture input is an input where a user moves his or herfinger (or other input tool). An example gesture input is a swipe input,where a user swipes his or her finger (or other input tool) across thescreen of a touch-sensitive surface. In some implementations, inputs canbe in direct contact with a touch-sensitive surface, or within aparticular vertical distance of a touch-sensitive surface (e.g., withinone or two inches of a touch-sensitive surface). Users cansimultaneously provide input at multiple locations on a touch-sensitivesurface. For example, inputs simultaneously touching at two or morelocations can be received. Example touch surface input types can includebut are not limited to: swipe, press-and-hold, tap, double-tap, flick,pinch, multiple finger tap, multiple finger press-and-hold, andpress-and-slide.

Example GUI for Highlighting and Viewing Content in a Digital Book

In some implementations, content display device 100 can implementvarious device functionalities. As part of one or more of thesefunctionalities, content display device 100 can present GUI 102 on atouch-sensitive surface of content display device 100. Graphical userinterface 102 can respond to input received from a user, for example,through the touch-sensitive surface. For example, a user can invoke anelectronic book application on the device for accessing a storedelectronic book (“ebook”).

In some implementations, a user can visually distinguish portions oftext contained in an ebook presented in GUI 102. For example, whilereading an ebook, a user can select text and elect to visuallydistinguish the selected text by highlighting the text (e.g., with abackground color or pattern) or applying another visually distinguishingquality to the text (e.g., underling, italics, strike-through, bold,etc.). A highlight can be visually displayed on GUI 102 using anysuitable color (e.g., yellow, green, blue, purple), or any suitablebackground pattern (e.g., checkered, horizontal stripes, verticalstripes, etc.)

In some implementations, a user can elect to create a note andattach/associate the note with selected text in an ebook. For example, auser can select a portion of text displayed in GUI 102 and, through oneor more controls presented on GUI 102, the user can elect to create andattach a note with the selected text. In some implementations, a notecan include text input by a user through a virtual keyboard displayed onGUI 102. In other implementations, a note can include any number ofsuitable media forms. For example, a note can include embedded audio,video, HTML, hypertext, and the like.

FIG. 1B illustrates an exemplary GUI 102 b for visually distinguishingtext in an electronic book. In some implementations, highlight 104 canbe applied to text from an ebook presented in GUI 102 b in response touser input received by GUI 102 b. In some implementations, a user mayselect text using any suitable input technique, such as those describedabove, for interacting with the touch sensitive surface of GUI 102 b. Insome implementations, a default highlight color can be used forhighlight 104 and can be applied to selected text automatically uponselection of the text. For example, highlight 104 can be appliedautomatically when a predefined user selection input is received. Apredefined user input for automatically highlighting text may, forexample, include a single tap and hold at input position 110, followedby a swipe to input position 112, and a release at input position 112.Upon release at input position 112, selected text in the electronic bookcan be visually distinguished by highlight 104. In otherimplementations, a highlight will not be applied to selected text untila specific request is received by GUI 102 b to apply a highlight toselected text. For example, upon receipt of a predefined user selectioninput, GUI 102 b may select text, but not apply a highlight to it. Apredefined user input for selecting text but not automaticallyhighlighting the selected text may, for example, include a double tap atinput position 110 followed by a swipe or drag (e.g., expanding aselection box) to input position 112.

FIG. 1C illustrates an exemplary heads-up display (HUD) for altering aproperty of a highlight or adding a note to a highlighted portion oftext. HUD 106 may be displayed in GUI 102 c in response to user inputselecting text, as described above in the description of FIG. 1B, or inresponse to a user input received on a previously highlighted portion oftext. For example, upon receiving a tap at input position 106 on textpreviously highlighted with highlight 104 c, HUD 106 can be presented inGUI 102 c. In some implementations, HUD 106 includes options forchanging a property of highlight 104 c, adding a note to the texthighlighted by highlight 104 c, or removing highlight 104 c. Forexample, HUD 106 can contain any suitable number of alternativehighlight visualizations 122 124, 126, 128, and 130. In someimplementations, highlight visualizations 122-128 correspond to colors(e.g., yellow, green, blue, pink, etc.) and highlight visualization 130corresponds to a text underline feature. A user may change the highlightvisualization of highlight 104 c by, for example, tapping the desiredvisualization 122-130 on GUI 102 c. For example, in FIG. 1D, a user taphas been received at input position 116 on GUI 102 d to change thevisualization of highlight 104 d to highlight visualization 122 (e.g.,the color green).

In some implementations, a user can add a note to highlight 104 c byselecting note button 132 in HUD 106. For example, in response to tapinput selecting note button 132, GUI 102 h shown in FIG. 1H can bepresented on content display device 100. As described below, GUI 102 hprovides a user interface for a user to input content to be included innote attached to highlighted text.

In other implementations, a user can delete highlight 104 c by selectingdelete button 134 in HUD 106. In other implementations, a user cannavigate to additional context menus for HUD 106 by selecting button136. For example, in response to a user tap at input position 118 inFIG. 1D, additional context menu items 140, 142, 144, and 146, can bedisplayed in HUD 150, shown in FIG. 1E. In some implementations, copybutton 140 corresponds to a copy feature for copying the texthighlighted by highlight 104 e, copy button 142 corresponds to a noteoption for creating and attaching a note to highlighted text 104 e,search button 144 corresponds to a search option for searching the texthighlighted by highlight 104 e, and share button 146 corresponds to ashare option, for sharing the text highlighted by highlight 104 e. Insome implementations, context menu 150 can be presented on GUI 102 e inresponse to receiving a double tap input at input position 152 onpreviously highlighted text 104 e.

FIG. 1F illustrates an exemplary HUD 160 presented in GUI 102 f inresponse to a selection of an amount of text below a threshold limit. Insome implementations, HUD 160 can be presented in GUI 102 f in responseto selection of a single word, or a phrase containing less than apredetermined number of words or text. For example, HUD 160 can bepresented in GUI 106 f when three or fewer words are selected byselection 104 f. In addition to providing options for copying theselected text 162, highlighting the selected text 166, and adding a noteto the selected text 168, HUD 160 can also present an option 164 fordisplaying a definition, if one exists, for the selected text.

FIG. 1G illustrates an exemplary HUD 170 presented in GUI 102 g inresponse to a selection of an amount of text above a threshold limit. Insome implementations, HUD 170 can be presented in GUI 102 g in responseto selection of text containing more than a predetermined number ofcharacters or words. HUD 170 can differ from HUD 160 in FIG. 1F in thatHUD 170 does not include a definition option because the selected text104 g is above a threshold limit. Upon selection of highlight option176, the selected text can be highlighted, if not automaticallyhighlighted in connection with an input technique described above, andhighlight HUD 106 shown in FIG. 1C can be displayed.

FIG. 1H illustrates an exemplary GUI 102 h for adding a note tohighlighted text 104 h. In some implementations, a user may add contentto note 180 through virtual keyboard 182. In other implementations, auser can add other media to note 180. For example, audio (voicerecordings), video, hypertext, html, and the like may also be includedin note 180.

FIG. 1I illustrates an exemplary GUI 102 i for viewing and interactingwith content in an ebook. In some implementations, content displayed inGUI 102 i can include previously highlighted text and notes associatedwith previously highlighted text. For example, GUI 102 i can containhighlighted text 104 i and note icon 180 i. Highlighted text 104 i canbe text previously highlighted in accordance with the techniquesdescribed above. Note icon 180 i can indicate that a note has previouslybeen associated with highlighted text 104 i (e.g., in accordance withthe techniques described above). In some implementations, a user mayselect additional text in GUI 102 i to highlight and associate noteswith. A user may also select note icon 180 i to edit the correspondingnote. For example, selecting note icon 180 i can cause note edit screen180 and virtual keyboard 182 shown in FIG. 1H to be displayed in GUI 102i, with the previously entered note text pre-populated in the note editscreen 180. GUI 102 i can include notes button 190 to toggle betweenpage view GUI 102 i and notes view GUI 200, shown in FIG. 2. Uponreceiving user input 192 (e.g., a tap) selecting notes button 190, notesview GUI 200 shown in FIG. 2 can be displayed on content device 100.

FIG. 2 illustrates an exemplary GUI 202 for viewing highlighted text andnotes corresponding to highlighted text. In some implementations, GUI202 can contain a navigation window 230 and a notes view window 240.Navigation window 230 can include a list of chapters from an ebook. Forexample, navigation window 230 can include a listing of all chapterscontained in an ebook or it can be filtered to only include chapters inwhich text has been highlighted or notes have been attached to text.Notes view window 240 can include highlighted text and correspondingnotes contained in the chapter selected at 235 in navigation window 230.For example, notes window 240 can display in GUI 202 highlighted text204 and 214 and corresponding notes 208 and 218. In someimplementations, a user may elect to go to the page in the ebook wherethe highlighted text is contained by, for example, tapping or clickingon highlighted text 204 or 214. In some implementations, in response toa tap or click input selecting note 208 or note 218, an edit GUI (e.g.,GUI 102 h in FIG. 1H) can be presented on content display device 100providing editing functionality for the contents of note 208 or 218. Insome implementations, upon receiving a tap input on button 206 or button216, note 208 or note 218, respectively, can be removed from view in GUI202. Similarly, if note 208 or 218 is not viewable in GUI 202, a usermay tap button 206 to reveal note 208 or button 216 to reveal note 218.

In some implementations, highlights presented in notes view 240 can befiltered by a highlight property associated with the highlights. Forexample, notes view 240 can be filtered such that only highlights withparticular highlight color are displayed in notes view 240.

In some implementations, GUI 202 includes note cards button 250 totoggle between GUI 202 and a note cards view (e.g., GUI 502 shown inFIG. 5). If no highlights or notes exist for a chapter selected innavigation window 230 and no vocabulary terms are available for thecurrent chapter, notecards button 250 can be disabled.

FIG. 3 shows an example process for presenting a heads-up display inresponse to a selection of content in an electronic book. User inputselecting text may be received at 302 on a touch-sensitive surface of agraphical user interface (e.g., GUI 102 b) of a content display device(e.g., content display device 100). At 304, content display device 100can determine whether the input received at 302 results in the selectedtext automatically being highlighted. For example, if the input receivedat 302 matches predefined input criteria, the text selected at 302 canbe automatically highlighted and a highlight color HUD (e.g., highlightcolor HUD 106) can be presented on the content display device.Alternatively, if input received at 302 does not match predefinedcriteria for automatically highlighting text, content display device 100can determine whether the text selected by the input received at 302 isgreater than a threshold amount of text. If the text selected by theinput received at 302 is greater than a threshold amount of text, afirst context display HUD can be presented (e.g., context display HUD170 in FIG. 1G) where a button to define the selected text is not anoption in the HUD. Alternatively, if the selected text received at 302is less than a threshold amount, then a second context display HUD canbe presented (e.g., context display HUD 160 in FIG. 1F) where a buttonto define the selected text is an option (e.g., Definition button 164)in the HUD.

FIGS. 4A-4B show example processes for creating a digital note card. InFIG. 4A, a digital note card can be created from highlighted text andnotes associated or added to the highlighted text. At 402, a contentdisplay device (e.g., content display device 100) can receive user inputhighlighting text in an ebook. At 404, content display device 100 canfurther receive user input creating a note to attach or associate withthe highlighted text. At 406, content display device 100 can create anote card, where the highlighted text received at 402 is on one side ofthe note card and the note received at 404 is on the other side (flipside) of the note card.

In FIG. 4B, digital note cards can be created from vocabulary termsincluded in a glossary of an electronic book. At 412, content displaydevice 100 can receive vocabulary terms from an electronic book, forexample, from a glossary created by a user of the ebook. At 414, a notecard can be created for each vocabulary term included in the glossary,where a vocabulary word is on one side of the note card, and thecorresponding definition for the vocabulary word is on the other side ofthe note card. At 416, the vocabulary note cards can be presented (e.g.,as described below) to a user of content display device 100 along withthe user generated content note cards created by the process describedin connection with FIG. 4A.

Example GUI for Viewing Digital Note Cards

FIGS. 5A-5C illustrate exemplary graphical user interfaces forinteracting with digital note cards. FIG. 5A illustrates an exemplarynote card view GUI 502. GUI 502 contains note card stack 503. Note cardstack 503 can include any suitable number of note cards. In someimplementations, a note card included in note card stack 503 includeshighlighted text and corresponding notes from a specific chapter in anebook, and/or vocabulary words and corresponding definitions from aspecific chapter of an ebook. For example, a note card in note cardstack 503 can contain highlighted text on one side of the note card anda note previously attached to the highlighted text on the other side ofthe note card. Similarly, a note card in note card stack 503 may containa vocabulary word on one side of the note card and a correspondingdefinition on the other side of the note card. Vocabulary note cards canbe generated from a glossary of terms that a user of an ebook hasincluded for the ebook, for example, as described above. In someimplementations, the note portion of a note card can be edited directlyon the note card while viewing the note card by invoking a note cardediting feature of GUI 502.

In some implementations, a user can interact with note cards containedin note card stack 503 through graphical user interface 502. Forexample, GUI 502 can receive user input to flip the top note card (e.g.,note card 1) in note card stack 503 over. In some implementations, asingle tap received by GUI 502 on note card 1 can cause note card 1 tobe flipped over, thus presenting the back, or other side, of note card 1in GUI 502. In some implementations, upon receiving a tap input (e.g.,tap input 514), note card 1 can be visually flipped over in one or morevisual frames, resulting in an animation of a note card being flippedover, described in more detail below. In some implementations, if nonote is associated with highlighted text 504 on the front of note card1, note card 1 will not be flipped over in response to tap input 514.Alternatively, if no note is associated with highlighted text 504, notecard 1 can still be flipped over in response to tap input 514, but theback of note card 1 may be blank.

In some implementations, a user can interact with GUI 502 to move thetop note card (e.g., note card 1) in note card stack 503 to the bottomof note card stack 503. For example, a horizontal swipe input 510 on topnote card 1 can cause note card 1 to be moved to the bottom of note cardstack 503. In some implementations, the top notecard's position on GUI502 changes relative to the position of a swipe input. As the top notecard's position reaches a predetermined location in GUI 502, the topnote card can be snapped to the bottom of the note card stack. As thetop note card is snapped to the bottom of the note card stack, if thenote card was flipped over, the note card can be reset such that frontof the notecard is facing the top of the note card stack.

In some implementations, a portion of the last note card, or bottom notecard, of note card stack 503 can be presented in GUI 502. For example,in GUI 502, a corner of bottom note card 38 can visually be shown,indicating that note card 38 is at the bottom of note card stack 503. Insome implementations, bottom note card 38 can be moved to the top ofnote card stack 503. For example, in response to user tap 516 or swipe518 on the visible portion of note card 38, note card 38 can bere-positioned at the top of note card stack 503.

If a note card in note card stack 503 contains more text than canvisibly be shown on the note card, a vertical swipe input 512 can scrollto other portions of text not visibly shown in GUI 502. In someimplementations, a double tap input 522 anywhere on the top note card innote card stack 503 can exit the note card study mode shown in GUI 502,and return the user to the notes view GUI 202 shown in FIG. 2, with thehighlight corresponding to the note card on the top of stack 503 beingdisplayed in GUI 202.

In some implementations, double tapping a note portion of the top notecard in note card stack 503 (e.g., when the note card is flipped overpresenting the corresponding note) can exit the note card study mode andnavigate the user to my notes view, with the keyboard expanded forediting the current note. Alternatively, a virtual keyboard may bedisplayed in GUI 502, allowing a user to edit the note directly in thenote card view.

FIG. 5B illustrates an exemplary heads-up display (HUD) 534 forcustomizing note card options during a note card viewing mode. In someimplementations, HUD 534 can be presented in GUI 502 b in response toinput received selecting button 506. HUD 534 can include options forselecting which note cards to include in note card stack 503. Forexample, when “Highlights and Notes” option 530 is selected, highlightedtext and notes corresponding to the highlighted text (if any) from thecurrent chapter will be combined to form a note card and included innote card stack 503. Alternatively or in addition to selecting“Highlights and Notes” option 530, “Chapter Vocabulary” option 532 canbe selected. If “Chapter Vocabulary” option 532 is selected, note cardswith vocabulary words on the front and corresponding definitions on theback can be included in note card stack 503. In some implementations,HUD 534 can include a “Note on Front” option 540 to select whether auser's notes should be displayed on the front of a note card or on theback of a note card. For example, if “Notes on Front” option 540 isactivated (e.g., turned ON), note cards in note card stack 503 can bepresented with the user's notes on the front of the card, and thehighlighted text corresponding to the user's notes on the back of thenote card. If a note card in note card stack 503 is a vocabulary notecard, activating “Notes on Front” option 540 can have the effect ofdisplaying the definition of the vocabulary term on the front of thenote card and the vocabulary term itself on the back of the note card.HUD 534 can further have an option 542 to “Shuffle” the note cards innote card stack 503. For example, when “Shuffle” option 542 isactivated, the note cards in note card stack 503 can be presented inrandom order, but not repeat any cards until cycled through once. When“Shuffle” is deactivated, note cards in note card stack 503 can bepresented in the order in which they appear in an ebook, or chapter inan ebook.

In some implementations, HUD 534 can include an option to view notecards in note card stack 503 in a live interactive way. For example,visual display device 100 can determine a subset of note cards includedin note card stack 503 that a user is likely to be more interested inviewing. In some implementations, a user can dynamically remove notecards from note card stack 503, for example, if the user is familiarwith the note card and no longer wants to view the note card. Inaddition, user feedback can be provided in graphical user interface 502b allowing a user to provide feedback indicating a level ofcomprehension of a note card. Visual display device 100 may thenreorganize note card stack 503 based on the user feedback resulting in,for example, certain note cards in note card stack 503 being displayedmore often than other note cards in note card stack 503.

FIG. 5C illustrates an exemplary HUD 534 c for filtering note cardsincluded in note card stack 503. In some implementations, note cardsincluded in note card stack 503 can be filtered based on a highlightcolor of the corresponding highlighted text. For example, “Highlightsand Notes” HUD 534 c can present highlight filters. When a filter 560,562, 564, 566, 568, or 570 is selected/checked, the highlights and notesof the corresponding highlight color/style will be included in note cardstack 503. When a filter 560, 562, 565, 566, 568, or 570 is notselected/checked, the note cards of the corresponding highlight colorcan be removed from note card stack 503.

FIGS. 6A-6E illustrate exemplary GUIs for visually presenting a notecard being flipped over. In some implementations, the back of note card1 can be presented in response to user input. For example, tap input 610received in GUI 602 can initiate a visualization of note card 1 flippingover resulting in the back of note card 1 being displayed in GUI 602 onthe top of note card stack 603. The back of note card 1 and note 606corresponding to highlighted text 604 is shown in GUIs 602 d and 602 eof FIGS. 6D and 6E, respectively. In some implementations, in responseto receiving tap input 610, note card 1 is visually flipped over in aseries of GUIs 602 b, 602 c, 602 d, and 602 e. In some implementations,GUIs 602 b, 602 c, 602 d, and 602 e can be combined with intermediateGUIs to create a virtually seamless animation showing note card 1flipping over. In other implementations, the back of note card 1 can bepresented in GUI 602 without an animation, or series of GUIs.

FIGS. 7A-7F illustrate exemplary graphical user interfaces for moving adigital note card to the bottom of a digital note card stack. In someimplementations, in response to a horizontal swipe 714 or 716 on notecard 1, the next note card, note card 2, in note card stack 703 can bedisplayed on the top of note card stack 703. In some implementations,the position of top note card 1 visually tracks, follows, or moves withan input position on GUI 702 as the input position changes (e.g., duringa swipe input). FIG. 7B and FIG. 7C illustrate note card 1 being swipedoff of GUI 702 a-702 c in response to a user swipe input 716 a-716 c.When transitioning between note cards, the top note card tracks userinput until the top note card reaches a predetermined position in a GUI,as shown in GUI 702 d in FIG. 7D. When the predetermined position isreached, the top note card is then moved or snapped to the bottom ofnote card stack 703. In some implementations, the front of note card 1can be restored as note card 1 is moved to the bottom of note card stack703. For example, as note card 1 passes the boundary of GUI 702 d, notecard 1 can be returned to the bottom of the note card stack 703 with thefront of note card 1 facing the top of note card stack 703, as shown byhighlighted text 704 on the front of note card 1 in GUI 702 e, asopposed to the back of note card 1 facing the top of note card stack703, as it did when note card 1 exited GUI 702 d. In FIG. 7 f, note card1 has been moved to the bottom of note card stack 703 and note card 2 isnow the top card of note card stack 703. In some implementations, GUIs702, 702 b, 702 c, 702 d, 702 e, and 702 f can be combined withintermediate GUIs to create a virtually seamless animation showing notecard 1 being moved to the back of note card stack 703.

FIGS. 8A-8E illustrate exemplary graphical user interfaces for moving adigital note card to the front of a digital note card stack. In someimplementations, tapping input 810 or swiping input 812 on bottom notecard 1 can move note card 1 to the front of note card stack 803. Forexample, upon receiving user input to move note card 1 to the front ofnote card stack 803, bottom note card 1 may visually transition from thebottom of note card stack 803 to the front of note card stack 803. GUIs802 b-802 e presented in FIGS. 8B-8E illustrate the visual transition ofbottom note card 1 to the front of note card stack 803. In FIG. 8E,bottom note card 1 has been restored to the front of note card stack803, on top of note card 2, and the new bottom note card is the previousbottom note card in note card stack 803, e.g., note card 38. In someimplementations, GUIs 802, 802 b, 802 c, 802 d, and 802 e can becombined with intermediate GUIs to create a virtually seamless animationshowing note card 1 being moved to the front of note card stack 803.

FIG. 9 shows an example process 900 for flipping a digital note cardover. At 902, a note card stack is presented in a graphical userinterface. Additionally, the front of a note card on the top of the notecard stack is also presented. User input requesting to flip the top notecard over so that the back can be viewed is received at 904. In responseto the user input received at 904, the top note card is visually flippedover, using any suitable number of intermediate graphical transitions.At 908, the back of the top note card is presented in the graphical userinterface.

FIG. 10 shows an example process 1000 for moving a digital note card tothe bottom of a digital note card stack. At 1002, a note card stack ispresented in a graphical user interface. At 1004, user input moving thetop note card of the note card stack to the bottom of the note cardstack is received. At 1006, in response to the received user input, thetop note card is visually moved to the bottom of the note card stack. At1008, a new note card is presented on the top of the note card stack,and the old top note card is visually shown at the bottom of the notecard stack.

FIG. 11 shows an example process 1100 for moving a digital note card tothe top of a digital note card stack. At 1102, a note card stack ispresented in a graphical user interface. At 1104, user input moving thebottom note card of the note card stack to the top of the note cardstack is received. At 1106, in response to the received user input, thebottom note card is visually moved to the top of the note card stack. At1108, the bottom note card is now presented in the graphical userinterface as the top note card of the note card stack.

Example Device Architecture

FIG. 12 is a block diagram of an exemplary architecture 1200 for adevice capable of running an application for creating and viewingdigital note cards. Architecture 1200 can include memory interface 1202,data processors, image processors and/or central processing units 1204and peripherals interface 1206. Memory interface 1202, processors 1204and/or peripherals interface 1206 can be separate components or can beintegrated in one or more integrated circuits. The various components inthe device can be coupled by one or more communication buses or signallines.

Sensors, devices, and subsystems can be coupled to peripherals interface1206 to facilitate multiple functionalities. For example, positioningsystem 1216, motion sensor 1210, light sensor 1212, and proximity sensor1214 can be coupled to the peripherals interface 1206 to facilitatevarious positioning, orientation, lighting, and proximity functions. Forexample, in some implementations, light sensor 1212 can be utilized tofacilitate adjusting the brightness of touch screen 1246. In someimplementations, motion sensor 1211 (e.g., an accelerometer,velicometer, or gyroscope) can be utilized to detect movement of thedevice. Accordingly, display objects and/or media can be presentedaccording to a detected orientation, e.g., portrait or landscape.

Other sensors can also be connected to peripherals interface 1206, suchas a temperature sensor, a biometric sensor, a gyroscope, or othersensing device, to facilitate related functionalities.

Location determination functionality can be facilitated throughpositioning information from positioning system 1216. Positioning system1219, in various implementations, can be a component internal to thedevice, or can be an external component coupled to the device (e.g.,using a wired connection or a wireless connection). In someimplementations, positioning system 1216 can include a Global NavigationSatellite System (GNSS) receiver or chipset, such as a GlobalPositioning System (GPS) receiver or chipset, and a positioning engine(e.g., including a Kalman filter) operable to derive positioninginformation from received GPS satellite signals. In otherimplementations, positioning system 1216 can include a magnetometer toprovide direction indications (e.g., magnetic or true North). In stillfurther implementations, positioning system 1216 can use wirelesssignals (e.g., cellular signals or 3G, WiFi or IEEE 802.11 signals) todetermine location information associated with the device. Hybridpositioning can also be used. Other positioning systems are possible.

Camera subsystem 1220 and optical sensor 1222, e.g., a charged coupleddevice (CCD) or a complementary metal-oxide semiconductor (CMOS) opticalsensor, can be utilized to facilitate camera functions, such ascapturing photographs and video clips.

Communication functions can be facilitated through one or morecommunication subsystems 1224. Communication subsystem(s) can includeone or more wireless communication subsystems and one or more wiredcommunication subsystems. Wireless communication subsystems can includeradio frequency receivers and transmitters and/or optical (e.g.,infrared) receivers and transmitters. Wired communication system caninclude a port device, e.g., a Universal Serial Bus (USB) port or someother wired port connection that can be used to establish a wiredconnection to other computing devices, such as other communicationdevices, network access devices, a personal computer, a printer, adisplay screen, or other processing devices capable of receiving and/ortransmitting data. The specific design and implementation ofcommunication subsystem 1224 can depend on the communication network(s)or medium(s) over which the device is intended to operate. For example,the device may include wireless communication subsystems designed tooperate over a global system for mobile communications (GSM) network, aGPRS network, an enhanced data GSM environment (EDGE) network, 802.xcommunication networks (e.g., Wi-Fi, WiMax, or 3G networks), codedivision multiple access (CDMA) networks, and a Bluetooth™ network.Communication subsystems 1224 may include hosting protocols such thatthe device may be configured as a base station for other wirelessdevices. As another example, the communication subsystems can allow thedevice to synchronize with a host device using one or more protocols,such as, for example, the TCP/IP protocol, HTTP protocol, UDP protocol,and any other known protocol.

Audio subsystem 1226 can be coupled to speaker 1228 and one or moremicrophones 1230. One or more microphones 1230 can be used, for example,to facilitate voice-enabled functions, such as voice recognition, voicereplication, digital recording, and telephony functions.

I/O subsystem 1240 can include touch screen controller 1242 and/or otherinput controller(s) 1244. Touch-screen controller 1242 can be coupled toa touch surface 1246. Touch surface 1246 and touch screen controller1242 can, for example, detect contact and movement or break thereofusing any of a number of touch sensitivity technologies, including butnot limited to capacitive, resistive, infrared, and surface acousticwave technologies, as well as other proximity sensor arrays or otherelements for determining one or more points of contact with touchsurface 1246 or proximity to touch surface 1246.

Other input controller(s) 1244 can be coupled to other input/controldevices 1248, such as one or more buttons, rocker switches, thumb-wheel,infrared port, USB port, and/or a pointer device such as a stylus. Theone or more buttons (not shown) can include an up/down button for volumecontrol of speaker 1228 and/or microphone 1230. A user of the device maycustomize a functionality of one or more of the buttons. Touch surface1246 can be used to implement virtual or soft buttons and/or a keyboard.

In some implementations, the device can present recorded audio and/orvideo files, such as MP3, AAC, and MPEG files. In some implementations,the device can include the functionality of an MP3 player, such as aniPhone™.

Memory interface 1202 can be coupled to memory 1250. Memory 1250 caninclude high-speed random access memory and/or non-volatile memory, suchas one or more magnetic disk storage devices, one or more opticalstorage devices, and/or flash memory (e.g., NAND, NOR). Memory 1250 canstore operating system 1252, such as Darwin, RTXC, LINUX, UNIX, OS X,WINDOWS, or an embedded operating system such as VxWorks. Operatingsystem 1252 may include instructions for handling basic system servicesand for performing hardware dependent tasks. In some implementations,the operating system 1252 can be a kernel (e.g., UNIX kernel).

Memory 1250 may also store communication instructions 1254 to facilitatecommunicating with one or more additional devices, one or more computersand/or servers. Communication instructions 1254 can also be used toselect an operational mode or communication medium for use by thedevice, based on a geographic location (obtained by GPS/Navigationinstructions 1268) of the device. Memory 1250 may include graphical userinterface instructions 1256 to facilitate graphic user interfaceprocessing, such as described in reference to FIGS. 1-11; sensorprocessing instructions 1258 to facilitate sensor-related processing andfunctions; phone instructions 1260 to facilitate phone-related processesand functions; electronic messaging instructions 1262 to facilitateelectronic-messaging related processes and functions; web browsinginstructions 1264 to facilitate web browsing-related processes andfunctions; media processing instructions 1266 to facilitate mediaprocessing-related processes and functions; GPS/Navigation instructions1268 to facilitate GPS and navigation-related processes andinstructions, e.g., mapping a target location; camera instructions 1270to facilitate camera-related processes and functions; and instructions1272 for an ebook reader application for reading ebooks and for creatingand interacting with note cards, as described in reference to FIGS.1-11. Memory 1250 may also store other software instructions (notshown), such as Web video instructions to facilitate web video-relatedprocesses and functions; and/or Web shopping instructions to facilitateweb shopping-related processes and functions. In some implementations,media processing instructions 1266 are divided into audio processinginstructions and video processing instructions to facilitate audioprocessing-related processes and functions and video processing-relatedprocesses and functions, respectively.

Each of the above identified instructions and applications cancorrespond to a set of instructions for performing one or more functionsdescribed above. These instructions need not be implemented as separatesoftware programs, procedures, or modules. Memory 1250 can includeadditional instructions or fewer instructions. Furthermore, variousfunctions of the device may be implemented in hardware and/or insoftware, including in one or more signal processing and/or applicationspecific integrated circuits.

Network-Operating Environment for a Device

FIG. 13 is a block diagram of an example network-operating environment1300 for the device of FIG. 12. Devices 1302 a and 1302 b cancommunicate data over one or more wired and/or wireless networks 1310.For example, wireless network 1312, e.g., a cellular network, cancommunicate with wide area network (WAN) 1314, such as the Internet, byuse of gateway 1316. Likewise, access device 1318 (access point or AP)),such as an 802.11g wireless access device, can provide communicationaccess to the wide area network 1314. In some implementations, bothvoice and data communications can be established over wireless network1312 and access device 1318. For example, device 1302 a can place andreceive phone calls (e.g., using VoIP protocols), send and receivee-mail messages (e.g., using POP3 protocol), and retrieve electronicdocuments and/or streams, such as web pages, photographs, and videos,over wireless network 1312, gateway 1316, and wide area network 1314(e.g., using TCP/IP or UDP protocols). Likewise, in someimplementations, device 1302 b can place and receive phone calls, sendand receive e-mail messages, and retrieve electronic documents overaccess device 1318 and wide area network 1314. In some implementations,devices 1302 a or 1302 b can be physically connected to access device1318 using one or more cables and the access device 1318 can be apersonal computer. In this configuration, device 1302 a or 1302 b can bereferred to as a “tethered” device.

Devices 1302 a and 1302 b can also establish communications by othermeans. For example, wireless device 1302 a can communicate with otherwireless devices, e.g., other devices 1302 a or 1302 b, cell phones,etc., over wireless network 1312. Likewise, devices 1302 a and 1302 bcan establish peer-to-peer communications 1320, e.g., a personal areanetwork, by use of one or more communication subsystems, such as aBluetooth™ communication device. Other communication protocols andtopologies can also be implemented.

Devices 1302 a or 1302 b can communicate with one or more services overone or more wired and/or wireless networks 1310. These services caninclude, for example, online resources 1330, such as an online store foraccessing, purchasing, and/or downloading digital books to the devices1302 a and/or 1302 b. Online resources 1330 can also include a Web-basedebook reader application that can be used by subscribing users through abrowser.

The features described can be implemented in digital electroniccircuitry or in computer hardware, firmware, software, or incombinations of them. The features can be implemented in a computerprogram product tangibly embodied in an information carrier, e.g., in amachine-readable storage device, for execution by a programmableprocessor; and method steps can be performed by a programmable processorexecuting a program of instructions to perform functions of thedescribed implementations by operating on input data and generatingoutput.

The described features can be implemented advantageously in one or morecomputer programs that are executable on a programmable system includingat least one programmable processor coupled to receive data andinstructions from, and to transmit data and instructions to, a datastorage system, at least one input device, and at least one outputdevice. A computer program is a set of instructions that can be used,directly or indirectly, in a computer to perform a certain activity orbring about a certain result. A computer program can be written in anyform of programming language (e.g., Objective-C, Java), includingcompiled or interpreted languages, and it can be deployed in any form,including as a stand-alone program or as a module, component,subroutine, or other unit suitable for use in a computing environment.

Suitable processors for the execution of a program of instructionsinclude, by way of example, both general and special purposemicroprocessors, and the sole processor or one of multiple processors orcores, of any kind of computer. Generally, a processor will receiveinstructions and data from a read-only memory or a random access memoryor both. The essential elements of a computer are a processor forexecuting instructions and one or more memories for storing instructionsand data. Generally, a computer can communicate with mass storagedevices for storing data files. These mass storage devices can includemagnetic disks, such as internal hard disks and removable disks;magneto-optical disks; and optical disks. Storage devices suitable fortangibly embodying computer program instructions and data include allforms of non-volatile memory, including by way of example semiconductormemory devices, such as EPROM, EEPROM, and flash memory devices;magnetic disks such as internal hard disks and removable disks;magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor andthe memory can be supplemented by, or incorporated in, ASICs(application-specific integrated circuits).

To provide for interaction with a user, the features can be implementedon a computer having a display device such as a CRT (cathode ray tube)or LCD (liquid crystal display) monitor for displaying information tothe user and a keyboard and a pointing device such as a mouse or atrackball by which the user can provide input to the computer.

The features can be implemented in a computer system that includes aback-end component, such as a data server or that includes a middlewarecomponent, such as an application server or an Internet server, or thatincludes a front-end component, such as a client computer having agraphical user interface or an Internet browser, or any combination ofthem. The components of the system can be connected by any form ormedium of digital data communication such as a communication network.Examples of communication networks include a LAN, a WAN and thecomputers and networks forming the Internet.

The computer system can include clients and servers. A client and serverare generally remote from each other and typically interact through anetwork. The relationship of client and server arises by virtue ofcomputer programs running on the respective computers and having aclient-server relationship to each other.

One or more features or steps of the disclosed embodiments can beimplemented using an Application Programming Interface (API). An API candefine on or more parameters that are passed between a callingapplication and other software code (e.g., an operating system, libraryroutine, function) that provides a service, that provides data, or thatperforms an operation or a computation.

The API can be implemented as one or more calls in program code thatsend or receive one or more parameters through a parameter list or otherstructure based on a call convention defined in an API specificationdocument. A parameter can be a constant, a key, a data structure, anobject, an object class, a variable, a data type, a pointer, an array, alist, or another call. API calls and parameters can be implemented inany programming language. The programming language can define thevocabulary and calling convention that a programmer will employ toaccess functions supporting the API.

In some implementations, an API call can report to an application thecapabilities of a device running the application, such as inputcapability, output capability, processing capability, power capability,communications capability, etc.

A number of implementations have been described. Nevertheless, it willbe understood that various modifications may be made. For example, manyof the examples presented in this document were presented in the contextof an ebook. The systems and techniques presented herein are alsoapplicable to other electronic text such as electronic newspaper,electronic magazine, electronic documents etc. Elements of one or moreimplementations may be combined, deleted, modified, or supplemented toform further implementations. As yet another example, the logic flowsdepicted in the figures do not require the particular order shown, orsequential order, to achieve desirable results. In addition, other stepsmay be provided, or steps may be eliminated, from the described flows,and other components may be added to, or removed from, the describedsystems. Accordingly, other implementations are within the scope of thefollowing claims.

What is claimed is:
 1. A method comprising: displaying, by a processingdevice, content from an electronic book in a graphical user interfacepresented on an electronic display coupled to the processing device;receiving first user input selecting a portion of the content; based onreceiving the first user input, determining whether the selected portionof the content exceeds a predetermined number of characters, wherein afirst set of options for performing operations on the selected portionof the content is displayed if the selected portion of the content isless than the predetermined number of characters and a second set ofoptions for performing operations on the selected portion of the contentthat includes an option for creating a digital note card is displayed ifthe selected portion of the content equals or exceeds the predeterminednumber of characters; in response to determining that the selectedportion of the content equals or exceeds the predetermined number ofcharacters, displaying the second set of options for performingoperations on the selected portion of the content; receiving second userinput selecting the option for creating a digital note card; based onreceiving the second user input, displaying an input field for adding auser-generated note to a digital note card; and creating a first digitalnote card, where a first side of the first digital note card includesthe selected portion of the content, and a second side of the firstdigital note card includes the user-generated note.
 2. The method ofclaim 1, comprising: displaying, in the graphical user interface, thefirst digital note card in a stack of digital note cards, where thefirst side of the first digital note card including the selected portionof the content is displayed on the top of the stack.
 3. The method ofclaim 2, comprising: receiving a user input requesting to flip the firstdigital note card over; responsive to the received user input, visuallyflipping the first digital note card over in an animated sequenceincluding a series of graphical transitions; and displaying, in thegraphical user interface, the second side of the first digital note cardthat includes the user-generated note.
 4. The method of claim 2,comprising: receiving a user input requesting to move the first digitalnote card to the bottom of the stack of digital note cards, the userinput including repositioning the first digital note card in thegraphical user interface; responsive to the received user input,determining whether a position of the first digital note card reaches apredetermined location in the graphical user interface; based ondetermining that the position of the first digital note card has reachedthe predetermined location in the graphical user interface, visuallymoving the first digital note card to the bottom of the stack in ananimated sequence; and displaying, in the graphical user interface, afront of a second digital note card on the top of the stack, anddisplaying at least a portion of the first digital note card at thebottom of the stack.
 5. The method of claim 2, comprising: receiving auser input requesting to move a second digital note card that is at thebottom of the stack of digital note cards to the top of the stack;responsive to the received user input, visually moving the seconddigital note card to the top of the stack in an animated sequenceincluding a series of graphical transitions; and displaying, in thegraphical user interface, a front of the second digital note card on thetop of the stack, and displaying at least a portion of the first digitalnote card below the second digital note card.
 6. The method of claim 2,comprising: receiving user feedback indicating a level of comprehensionof content included in a digital note card; and based on the userfeedback, dynamically filtering the digital note cards included in thestack of digital note cards, wherein a subset of digital note cards inthe dynamically filtered stack are displayed more often compared toother digital note cards in the stack.
 7. The method of claim 2,comprising: filtering the digital note cards in the stack of digitalnote cards, the filtering based at least in part on a highlighting colorassociated with the selected portion of content included in the digitalnote cards.
 8. The method of claim 2, wherein the digital note cardstack includes a plurality of vocabulary digital note cards, where, foreach vocabulary digital note card, front of the vocabulary digital notecard includes a vocabulary word from a glossary of vocabulary wordsincluded with the electronic book and back of the vocabulary digitalnote card includes a corresponding definition of the vocabulary word. 9.The method of claim 2, comprising: receiving a user input swiping thefirst digital note card in the graphical user interface; and responsiveto the received user input, repositioning the first digital note cardsuch that a second digital note card that is below the first digitalnote card in the stack is at least partly visible on the graphical userinterface.
 10. The method of claim 1, wherein displaying options forperforming an operation on the selected portion of the contentcomprises: presenting a heads up display box in the graphical userinterface, the heads up display box including the options for performingthe operation on the selected portion of the content, and wherein theheads up display box is presented as an overlay above the displayedcontent from the electronic book in the graphical user interface. 11.The method of claim 1, wherein displaying the input field for addinguser-generated note to a digital note card comprises: presenting, as anoverlay above the displayed content from the electronic book in thegraphical user interface, a heads up display box that includes the inputfield; and displaying, on the graphical user interface in associationwith presenting the heads up display box, a virtual keyboard forinputting content corresponding to the user-generated note.
 12. Themethod of claim 1, wherein receiving first user input selecting aportion of the content further comprises: determining whether the firstuser input matches predefined input criteria for highlighting theselected portion of the content; and in response to determining that thefirst user input matches the predefined input criteria, automaticallyhighlighting the selected portion of the content.
 13. An electronicdevice comprising: a processor configured to execute instructions storedin a non-transitory machine-readable medium; an input/output subsystem,operatively coupled to the processor, including an electronic displaywith a touch sensitive surface for input and output; and a memoryserving the machine-readable medium and storing processor-executableinstructions to cause the electronic device to perform operationscomprising: displaying, via the touch sensitive surface, content from anelectronic book in a graphical user interface presented on theelectronic display; receiving, via the touch sensitive surface, firstuser input selecting a portion of the content; based on receiving thefirst user input, determining whether the selected portion of thecontent exceeds a predetermined number of characters, wherein a firstset of options for performing operations on the selected portion of thecontent is displayed if the selected portion of the content is less thanthe predetermined number of characters and a second set of options forperforming operations on the selected portion of the content thatincludes an option for creating a digital note card is displayed if theselected portion of the content equals or exceeds the predeterminednumber of characters; in response to determining that the selectedportion of the content equals or exceeds the predetermined number ofcharacters, displaying the second set of options for performingoperations on the selected portion of the content; receiving second userinput selecting the option for creating a digital note card; based onreceiving the second user input, displaying an input field for adding auser-generated note to a digital note card; and creating a first digitalnote card, where a first side of the first digital note card includesthe selected portion of the content, and a second side of the firstdigital note card includes the user-generated note.
 14. The electronicdevice of claim 13, wherein the instructions cause the electronic deviceto perform operations comprising: displaying, in the graphical userinterface, the first digital note card in a stack of digital note cards,where the first side of the first digital note card including theselected portion of the content is displayed on the top of the stack.15. The electronic device of claim 14, wherein the instructions causethe electronic device to perform operations comprising: receiving, viathe touch sensitive surface, a user input requesting to flip the firstdigital note card over; responsive to the received user input, visuallyflipping the first digital note card over in an animated sequenceincluding a series of graphical transitions; and displaying, in thegraphical user interface, the second side of the first digital note cardthat includes the user-generated note.
 16. The electronic device ofclaim 14, wherein the instructions cause the electronic device toperform operations comprising: receiving, via the touch sensitivesurface, a user input requesting to move the first digital note card tothe bottom of the stack of digital note cards, the user input includingrepositioning the first digital note card in the graphical userinterface; responsive to the received user input, determining whether aposition of the first digital note card reaches a predetermined locationin the graphical user interface; based on determining that the positionof the first digital note card has reached the predetermined location inthe graphical user interface, visually moving the first digital notecard to the bottom of the stack in an animated sequence; and displaying,in the graphical user interface, a front of a second digital note cardon the top of the stack, and displaying at least a portion of the firstdigital note card at the bottom of the stack.
 17. The electronic deviceof claim 14, wherein the instructions cause the electronic device toperform operations comprising: receiving, via the touch sensitivesurface, a user input requesting to move a second digital note card thatis at the bottom of the stack of digital note cards to the top of thestack; responsive to the received user input, visually moving the seconddigital note card to the top of the stack in an animated sequenceincluding a series of graphical transitions; and displaying, in thegraphical user interface, a front of the second digital note card on thetop of the stack, and displaying at least a portion of the first digitalnote card below the second digital note card.
 18. The electronic deviceof claim 14, wherein the instructions cause the electronic device toperform operations comprising: receiving user feedback indicating alevel of comprehension of content included in a digital note card; andbased on the user feedback, dynamically filtering the digital note cardsincluded in the stack of digital note cards, wherein a subset of digitalnote cards in the dynamically filtered stack are displayed more oftencompared to other digital note cards in the stack.
 19. The electronicdevice of claim 14, wherein the instructions cause the electronic deviceto perform operations comprising: filtering the digital note cards inthe stack of digital note cards, the filtering based at least in part ona highlighting color associated with the selected portion of contentincluded in the digital note cards.
 20. The electronic device of claim14, wherein the digital note card stack includes a plurality ofvocabulary digital note cards, where, for each vocabulary digital notecard, front of the vocabulary digital note card includes a vocabularyword from a glossary of vocabulary words included with the electronicbook and back of the vocabulary digital note card includes acorresponding definition of the vocabulary word.
 21. The electronicdevice of claim 14, comprising: receiving a user input swiping the firstdigital note card in the graphical user interface; and responsive to thereceived user input, repositioning the first digital note card such thata second digital note card that is below the first digital note card inthe stack is at least partly visible on the graphical user interface.22. The electronic device of claim 13, wherein displaying options forperforming an operation on the selected portion of the contentcomprises: presenting a heads up display box in the graphical userinterface, the heads up display box including the options for performingthe operation on the selected portion of the content, and wherein theheads up display box is presented as an overlay above the displayedcontent from the electronic book in the graphical user interface. 23.The electronic device of claim 13, wherein displaying the input fieldfor adding user-generated note to a digital note card comprises:presenting, as an overlay above the displayed content from theelectronic book in the graphical user interface, a heads up display boxthat includes the input field; and displaying, on the graphical userinterface in association with presenting the heads up display box, avirtual keyboard for inputting content corresponding to theuser-generated note.
 24. The electronic device of claim 13, whereinreceiving first user input selecting a portion of the content furthercomprises: determining whether the first user input matches predefinedinput criteria for highlighting the selected portion of the content; andin response to determining that the first user input matches thepredefined input criteria, automatically highlighting the selectedportion of the content.
 25. A computer program product, encoded in anon-transitory computer-readable medium and including instructions thatare operable to cause a data processing apparatus to perform operationscomprising: displaying content from an electronic book in a graphicaluser interface presented on an electronic display coupled to the dataprocessing apparatus; receiving first user input selecting a portion ofthe content; based on receiving the first user input, determiningwhether the selected portion of the content exceeds a predeterminednumber of characters, wherein a first set of options for performingoperations on the selected portion of the content is displayed if theselected portion of the content is less than the predetermined number ofcharacters and a second set of options for performing operations on theselected portion of the content that includes an option for creating adigital note card is displayed if the selected portion of the contentequals or exceeds the predetermined number of characters; in response todetermining that the selected portion of the content equals or exceedsthe predetermined number of characters, displaying the second set ofoptions for performing operations on the selected portion of thecontent; receiving second user input selecting the option for creating adigital note card; based on receiving the second user input, displayingan input field for adding a user-generated note to a digital note card;and creating a first digital note card, where a first side of the firstdigital note card includes the selected portion of the content, and asecond side of the first digital note card includes the user-generatednote.
 26. The computer program product of claim 25, wherein theinstructions cause the data processing apparatus to perform operationscomprising: displaying, in the graphical user interface, the firstdigital note card in a stack of digital note cards, where the first sideof the first digital note card including the selected portion of thecontent is displayed on the top of the stack.
 27. The computer programproduct of claim 26, wherein the instructions cause the data processingapparatus to perform operations comprising: receiving a user inputrequesting to flip the first digital note card over; responsive to thereceived user input, visually flipping the first digital note card overin an animated sequence including a series of graphical transitions; anddisplaying, in the graphical user interface, the second side of thefirst digital note card that includes the user-generated note.
 28. Thecomputer program product of claim 26, wherein the instructions cause thedata processing apparatus to perform operations comprising: receiving auser input requesting to move the first digital note card to the bottomof the stack of digital note cards, the user input includingrepositioning the first digital note card in the graphical userinterface; responsive to the received user input, determining whether aposition of the first digital note card reaches a predetermined locationin the graphical user interface; based on determining that the positionof the first digital note card has reached the predetermined location inthe graphical user interface, visually moving the first digital notecard to the bottom of the stack in an animated sequence; and displaying,in the graphical user interface, a front of a second digital note cardon the top of the stack, and displaying at least a portion of the firstdigital note card at the bottom of the stack.
 29. The computer programproduct of claim 26, wherein the instructions cause the data processingapparatus to perform operations comprising: receiving a user inputrequesting to move a second digital note card that is at the bottom ofthe stack of digital note cards to the top of the stack; responsive tothe received user input, visually moving the second digital note card tothe top of the stack in an animated sequence including a series ofgraphical transitions; and displaying, in the graphical user interface,a front of the second digital note card on the top of the stack, anddisplaying at least a portion of the first digital note card below thesecond digital note card.
 30. The computer program product of claim 26,wherein the instructions cause the data processing apparatus to performoperations comprising: receiving user feedback indicating a level ofcomprehension of content included in a digital note card; and based onthe user feedback, dynamically filtering the digital note cards includedin the stack of digital note cards, wherein a subset of digital notecards in the dynamically filtered stack are displayed more oftencompared to other digital note cards in the stack.
 31. The computerprogram product of claim 26, wherein the instructions cause the dataprocessing apparatus to perform operations comprising: filtering thedigital note cards in the stack of digital note cards, the filteringbased at least in part on a highlighting color associated with theselected portion of content included in the digital note cards.
 32. Thecomputer program product of claim 26, wherein the digital note cardstack includes a plurality of vocabulary digital note cards, where, foreach vocabulary digital note card, front of the vocabulary digital notecard includes a vocabulary word from a glossary of vocabulary wordsincluded with the electronic book and back of the vocabulary digitalnote card includes a corresponding definition of the vocabulary word.33. The computer program product of claim 26, wherein receiving firstuser input selecting a portion of the content further comprises:receiving a user input swiping the first digital note card in thegraphical user interface; and responsive to the received user input,repositioning the first digital note card such that a second digitalnote card that is below the first digital note card in the stack is atleast partly visible on the graphical user interface.
 34. The computerprogram product of claim 25, wherein displaying options for performingan operation on the selected portion of the content comprises:presenting a heads up display box in the graphical user interface, theheads up display box including the options for performing the operationon the selected portion of the content, and wherein the heads up displaybox is presented as an overlay above the displayed content from theelectronic book in the graphical user interface.
 35. The computerprogram product of claim 25, wherein displaying the input field foradding user-generated note to a digital note card comprises: presenting,as an overlay above the displayed content from the electronic book inthe graphical user interface, a heads up display box that includes theinput field; and displaying, on the graphical user interface inassociation with presenting the heads up display box, a virtual keyboardfor inputting content corresponding to the user-generated note.
 36. Thecomputer program product of claim 25, wherein receiving first user inputselecting a portion of the content further comprises: determiningwhether the first user input matches predefined input criteria forhighlighting the selected portion of the content; and in response todetermining that the first user input matches the predefined inputcriteria, automatically highlighting the selected portion of thecontent.